home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / graphic / rtnews.zip / RTNEWS6 < prev    next >
Text File  |  1992-09-13  |  89KB  |  2,018 lines

  1.  _ __                 ______                         _ __
  2. ' )  )                  /                           ' )  )
  3.  /--' __.  __  ,     --/ __  __.  _. o ____  _,      /  / _  , , , _
  4. /  \_(_/|_/ (_/_    (_/ / (_(_/|_(__<_/ / <_(_)_    /  (_</_(_(_/_/_)_
  5.              /                               /|
  6.             '                               |/
  7.  
  8.             "Light Makes Right"
  9.  
  10.              January 6, 1989
  11.                 Volume 2, Number 1
  12.  
  13. Compiled by Eric Haines, 3D/Eye Inc, 2359 Triphammer Rd, Ithaca, NY 14850
  14.     607-257-1381, hpfcla!hpfcrs!eye!erich@hplabs.hp.com
  15. All contents are US copyright (c) 1988,1989 by the individual authors
  16.  
  17. Contents:
  18.     Introduction - Eric Haines
  19.     New Members - David Jevans, Subrata Dasgupta, Darwin Thielman,
  20.     Steven Stadnicki, Mark Reichert
  21.     Multiprocessor Visualization of Parametric Surfaces - Markku Tamminen,
  22.     comments from many others
  23.     Miscellany - K.R.Subramanian, David F. Rogers, Steven Stadnicki,
  24.     Joe Smith, Mark Reichert, Tracey Bernath
  25.     Supersampling Discussion - David Jevans, Alan Paeth, Andrew Woo,
  26.     Loren Carpenter
  27.     Distributed Ray Tracer Available - George Kyriazis
  28.     Ray Tracing Program for 3b1 - Sid Grange
  29.     Map Archive - Gary L. Crum
  30.     Index of Back Issues - Eric Haines
  31.  
  32. -----------------------------------------------------------------------------
  33.  
  34. Introduction
  35. ------------
  36.  
  37.     Well, this has been a busy time around here.  First of all, note my
  38. change of address (it's in the header).  We've moved to a larger building with
  39. much better environmental controls (i.e. we don't have to cool the machines in
  40. the winter by opening the windows).  In the meantime I've been trying to
  41. actually finish a product and maybe even make some money from it.  There's
  42. also those SIGGRAPH deadlines on January 10th....  Busy times, so excuse the
  43. long delay in getting this issue out.
  44.  
  45.     The other great struggle has been to try to get my new Cornell account
  46. to talk with the outside world.  DEC's EUNICE operating system has foiled me so
  47. far, so this issue is being distributed by Michael Cohen, who's now at the
  48. University of Utah.  Many thanks, Michael.
  49.  
  50.     Due to the length between issues, my cullings from USENET have
  51. accumulated into an enormous amount of material.  As such, the condensed
  52. version of these will be split between this and the next issue.  This issue
  53. contains what I felt was the best of the supersampling discussion.  If this
  54. material is old hat, please write and tell us of your experiences with
  55. supersampling: what algorithm do you use? are you satisfied with it? what kind
  56. of filtering is used, and what are your subdivision criteria?
  57.  
  58.     This issue is the first one that has a "Volume X, Number Y" in the
  59. header.  This has been added partly for ease of reference, but also (more
  60. importantly) for avoiding dropouts.  If you get "Number 1", then "Number 3",
  61. you know you've missed something (probably due to email failure).  At the end
  62. of this issue is a list of all the past issues.  If you are missing any, please
  63. write and I'll send them on.
  64.  
  65. -------------------------------------------------------------------------------
  66.  
  67. New Members
  68. -----------
  69.  
  70.  
  71. From: David Jevans <hpfcla!jevans@cpsc.UCalgary.CA>
  72.  
  73. I can be reached at the U of Calgary.  I work days at Jade Simulations
  74. International, ph # 403-282-5711.
  75.  
  76.     My interests in ray tracing are in multi-process (networks of SUNS, BBN
  77. Butterfly, and Transputers) ray tracing, space subdivision, and ray tracing
  78. functionally defined iso-surfaces.
  79.  
  80.     I am working on optimistic multi-processor ray tracing and combining
  81. adaptive and voxel spatial subdivision techniques.  I have implemented a
  82. parallel ray tracer on the University of Calgary's BBN Butterfly.  My ray
  83. tracers handle a variety of object types including polygons, spline surfaces,
  84. and functionally defined iso-surfaces.  My latest projects are using TimeWarp
  85. to speed up multi-processor ray tracing, adding a texture language, frame
  86. coherence for ray tracing animation, and developing the ray tracing answer to
  87. radiosity.
  88.  
  89. David Jevans, U of Calgary Computer Science, Calgary AB  T2N 1N4  Canada
  90. uucp: ...{ubc-cs,utai,alberta}!calgary!jevans
  91.  
  92. --------
  93.  
  94. # Subrata Dasgupta - raycasting of free-form surfaces, surface representations
  95. # Duke University
  96. # Dept. of Computer Science
  97. # Durham, NC 27706
  98. # (919)-684-5110
  99. alias    subrata_dasgupta    sdg@cs.duke.edu
  100.  
  101. I am relatively new the field of ray tracing. I am involved in the design of a
  102. raycasting system based on the original design by Gershon Kedem and John Ellis
  103. [Proc. 1984 Int'l conference on Computer Design]. The original design uses
  104. Constructive Solid Geometry for building up a complex object out of simple
  105. primitives like cones, cylinders, and spheres. The main drawback of such a
  106. system is that representing an object with cubic or higher order surfaces
  107. require numerous quadratic primitives and even then is at best an approximation
  108. to the original surface.
  109.  
  110. The raycasting machine uses an array of parallel rays and intersects them with
  111. primitives. The applications of such a machine are potentially large like:
  112. modeling surfaces for NC machines, calculating volume and moment of inertia,
  113. finding fast surface intersections, to name just a few. At present there are 2
  114. working models of the raycasting machine, one of which is in the Dept. of
  115. Mechanical Engg. at Cornell. The other one is our experimental m/c which is
  116. located at the U. of N. Carolina at Chapel Hill (The operative word in this
  117. sentence is "located" :-) ). Although my input may not be very frequent at the
  118. beginning I will be an avid reader of the raycasting news. Thanks for inviting
  119. me in.
  120.  
  121. --------
  122.  
  123. From: Darwin G. Thielman <hpfcla!thielman@cs.duke.edu>
  124. Subject: Duke ray casting group
  125.  
  126. # Darwin Thielman - Writing software to control the raycasting machine at Duke
  127. # Duke University
  128. # Computer Science Dept.
  129. # Durham, NC. 27706
  130. # (919) 684-3048 x246
  131. alias    darwin_thielman        thielman@duke.cs.duke.edu
  132.  
  133. At Duke we have designed a system that does ray casting on many primitives in
  134. parallel.  This is achieved with 2 types of processors, a primitive classifier
  135. (PC) and a combine classifier (CC).  The PC's solve systems of quadratic
  136. equations and the CC's combine these results.
  137.  
  138. I am the system software person, I am writing micro code for an Adage 3000
  139. machine.  The micro code is responsible for controlling the ray casting board
  140. and creating images from the output of the board.
  141.  
  142.  
  143.  
  144. In addition the following people also work on the ray casting system at Duke.
  145.  
  146. Gershon Kedem 
  147. John Ellis
  148. Subrata Dasgupta
  149. Jack Briner
  150. Ricardo Pantazis
  151. Sanjay Vishin
  152.  
  153. Also at UNC Chapel Hill there is a eng. who is working on the hardware design
  154. of the system he is Tom Lyerly.
  155.  
  156.  
  157. Since I do not want to attempt to explain what each one of these people is
  158. doing (with the possibility of getting it wrong) I will not try.  All of the
  159. above people will have access to the RTN and if any of them are interested they
  160. may respond.  Also If anyone want to get a hold of any of them just send me a
  161. message and I will forward it to the proper person.
  162.  
  163.  
  164.  
  165. We also have one of our boards at Cornell, there is a group there that is
  166. working on solid modeling, and hopes to use our hardware.  If you want you can
  167. contact Rich Marisa (607) 255-7636 for more information on what they are doing.
  168. His mail address is marisa@oak.cadif.cornell.edu.  Also I have talked to him
  169. and if you want to see a demo of our system he would be glad to show it to you.
  170.  
  171. If you have any questions or comments please feel free to contact me.
  172.  
  173.                     Darwin Thielman
  174.  
  175. --------
  176.  
  177. From: Steven Stadnicki <hpfcla!stadnism@clutx.clarkson.edu>
  178.  
  179. Steven Stadnicki - shadowing from reflected light sources, tracing atomic
  180.            orbitals, massively parallel ray tracing
  181. 212 Reynolds Dormitory
  182. Clarkson University
  183. Potsdam, NY 13676
  184. (315) 268-4079
  185. stadnism@clutx.clarkson.edu
  186.  
  187. Right now, I'm working on writing a simple ray tracer to implement my reflected
  188. shadowing model (see the E-mail version of RTNews, Nov. 4), and then I'll be
  189. trying a few texture models.  (Texture mapping on to atoms... the marble
  190. P-orbital!)
  191.  
  192. --------
  193.  
  194. From: hpfcla!sunrock!kodak!supra!reichert@Sun.COM (Mark Reichert x25948)
  195. Subject: RT News intro
  196.  
  197. #
  198. # Mark Reichert    - diffuse interreflections
  199. # Work:
  200. #    Eastman Kodak Company
  201. #    Advanced Systems Group
  202. #    Building 69
  203. #    Rochester, NY 14650
  204. #    716-722-5948
  205. #
  206. # Home:
  207. #    45 Clay Ave.
  208. #    Rochester, NY 14613
  209. #    716-647-6025
  210. #
  211.     I am currently interested in global illumination simulation using ray
  212. tracing with auxiliary data structures for holding illuminance values.
  213.  
  214.     I am also interested in ray tracing from the lights into the environment -
  215. maybe just a few bounces, then storing illuminance as above.
  216.  
  217.     What I would really like is a ray tracer (or whatever) that would do a nice
  218. job of modeling triangular glass prisms.
  219.  
  220. alias    mark_reichert    hpfcrs!hpfcla!hplabs!sun!sunrock!kodak!supra!reichert
  221.  
  222. -------------------------------------------------------------------------------
  223.  
  224. Multiprocessor Visualization of Parametric Surfaces
  225.  
  226. From: Markku Tamminen <hpfcla!mit%hutcs.hut.fi@CUNYVM.CUNY.EDU>
  227.  
  228.  
  229. I obtained the Ray-Tracing News from Panu Rekola, and sent the message below to
  230. some people on your distribution list interested in related matters.
  231.  
  232. I have done research in geometric data structures and algorithms in 1981-84. A
  233. practical result was the EXCELL spatial index (like an octree with binary
  234. subdivision, together with a directory allowing access by address computation).
  235.  
  236. My present interests are described below.
  237.  
  238. Charles Woodward has developed a new and efficient method for ray-tracing
  239. parametric surfaces using subdivision for finding the ray/patch intersection.
  240.  
  241. ============================================================================
  242.  
  243. I am putting together a project proposal with the abstract below.  I would be
  244. interested in obtaining references to any new work you have done in ray-tracing
  245. and hardware, and later in an exchange of ideas.  I will send an
  246. acknowledgement to any message I get, so if you don't see one something has
  247. gone wrong.  (Email has often been very unreliable.)
  248.  
  249. Looking forward to hearing something from you,
  250.  
  251.         Markku Tamminen
  252.         Helsinki University of Technology
  253.         Laboratory of Information Processing Science
  254.         02150 ESPOO 15, FINLAND
  255.         Tel: 358-0-4513248 (messages: 4513229, home: 710317)
  256.         Telex: 125161 HTKK SF
  257.         Telefax:        358-0-465077
  258.         ARPANET:        mit%hutcs.uucp%fingate.bitnet@cunyvm.cuny.edu
  259.         INTERNET:       mit@hutcs.hut.fi
  260.         BITNET:         mit%hutcs.uucp@fingate
  261.         UUCP:           mcvax!hutcs!mit
  262.  
  263.  
  264.  
  265.        Multiprocessor visualization of parametric surfaces
  266.                         Project proposal
  267.  
  268.                Markku Tamminen (mit@hutcs.hut.fi)
  269.                Charles Woodward (cwd@hutcs.hut.fi)
  270.                 Helsinki University of Technology
  271.           Laboratory of Information Processing Science
  272.               Otakaari 1 A, SF-02150 Espoo, Finland
  273.  
  274.  
  275. ABSTRACT
  276.  
  277. The proposed research aims at an  efficient  system  architecture
  278. and  improved  algorithms  for realistic visualization of complex
  279. scenes described by parametric surfaces.
  280.  
  281. The  key  components  of such  a  system are a spatial index  and
  282. a surface patch intersector.  For both very efficient  uniproces-
  283. sor  solutions  have  been developed  by the authors at the  Hel-
  284. sinki  University  of  Technology.  However, to obtain sufficient
  285. speed, at least the latter should be based on a specialized   ar-
  286. chitecture.
  287.  
  288. We  propose obtaining a balanced complete system by gradually as-
  289. cending  what we call a specialization hierarchy.   At its bottom
  290. are solutions based on multiprocessors or networks of independent
  291. computing units (transputers). In this case an important research
  292. problem is how to avoid duplicating the data base in the  proses-
  293. sors. At  the top of the hierarchy are specialized processors im-
  294. plemented in VLSI.
  295.  
  296. The research will produce general insight into the  possibilities
  297. of    utilizing  concurrency   and   specialized   processors  in
  298. geometric search and computation.
  299.  
  300. PREVIOUS WORK
  301.  
  302. M. Mantyla and M. Tamminen , ``Localized Set Operations for Solid
  303. Modeling ,'' Computer Graphics , vol. 17, no. 3, pp. 279-289 ,
  304. 1983.
  305.  
  306. M. Tamminen , The EXCELL Method for Efficient Geometric Access to
  307. Data , Acta Polytechnica Scandinavica, Ma 34 , 1981.
  308.  
  309. Markku Tamminen, Olli Karonen , and Martti Mantyla, ``Ray-
  310. Casting and Block Model Conversion Using a Spatial Index,''
  311. Computer Aided Design, vol. 16, pp. 203 - 208, 1984.
  312.  
  313. C. Woodward, ``Skinning Techniques for Interactive B-Spline
  314. Surface Interpolation,'' Computer-Aided Design, vol. 20, no. 8,
  315. pp. 441-451, 1988.
  316.  
  317. C. Woodward, ``Ray Tracing Parametric Surfaces By Subdivision in
  318. Viewing Plane,'' to Appear in Proc. Theory and Practice of
  319. Geometric Modelling, ed. W. Strasser, Springer-Verlag, 1989.
  320.  
  321. --------
  322.  
  323. [a later message from Markku Tamminen:]
  324.  
  325. I thought I'd send this summary of responses as feedback, because some answers
  326. may not have found their way through the network. I think mit@hutcs.hut.fi
  327. might be the safest address to use for me.
  328.  
  329. Our project has not yet started - I have just applied for funding with the
  330. proposal whose abstract I sent to you. Also, I am a software person, but hope
  331. to get somebody hardware-oriented involved in the project. We will be using
  332. transputers to start with, but so far I have just made some small experiments
  333. with them.
  334.  
  335. Our ray/patch intersection method is based on subdivision. It is a new method
  336. developed by Charles Woodward, and quite a bit more efficient than Whitted's
  337. original one. However, it takes 3 ms for a complete ray/patch intersection on a
  338. SUN4. Thus, we'd like to develop a specialized processor for this task - the
  339. algorithm is well suited for that.
  340.  
  341. Our spatial index is EXCELL, which I originally published in 1981, and whose 3D
  342. application was described in SIGGRAPH'83 by Martti Mantyla and me. I have
  343. lately tuned it quite a bit for ray-tracing, and we are very satisfied with its
  344. performance. (EXCELL uses octree-like, but binary, subdivision. It has a
  345. directory, which is an array providing direct access by address computation,
  346. and a data part, which corresponds to the leaf cells of an octree. Binary
  347. subdivision leads to fewer leaf-cells than 8-way. There is an overflow
  348. criterion that decides when subdivision will be discontinued.)
  349.  
  350. We have obtained best results when we store in the spatial index for each patch
  351. the bounding box of its control points, and further cut it with a "slab"
  352. defined by two planes parallel to a "mean normal" of the patch. Using this
  353. method we have to perform, on the average, less than 2 complete patch/ray
  354. intersection tests.
  355.  
  356. Our method has not been as efficient as that of subdividing the patches to all
  357. the way to triangles. However, as much less storage is required, we consider
  358. our technique more suited for distributed architectures.
  359.  
  360. In the proposed project we want to look both into developing a specialized
  361. (co)processor for the ray/patch intersection task and into distributing the
  362. whole computation on several processors. I think that the most difficult
  363. research problem is the partitioning of the data base in a loosely coupled
  364. system. In our case the ray/patch intersection task is so time consuming that
  365. it would help (to begin with) to keep the ray/database traversal on the
  366. workstation and jost distribute the intersection task to other processors.
  367.  
  368. Some questions:
  369.  
  370.     Does anybody know of HW work in the ray/patch intersection area; e.g.,
  371.     as a continuation of Pulleyblank & Kapenga's article in CG&A?
  372.  
  373.     Does anybody know of somebody working with transputers in ray-tracing? (We
  374.     do know of the INMOS ray-tracing demo.)
  375.  
  376.     How enthusiastic are you about the approach of using digital signal
  377.     processors? What other off-the shelf processors would be specially suited
  378.     as a basis for a ray-tracing coprocessor?
  379.  
  380.     What would be the specific computation to offload to a coprocessor?
  381.  
  382. I don't know what more to write now about our project. Below is a short summary
  383. of the responses I got:
  384.  
  385.     From: kyriazis@yy.cicg.rpi.edu (George Kyriazis)
  386.  
  387. Works with pixel machine, and will transport RPI's ray-tracer to it.  Main
  388. problem: duplication of code and data.
  389.  
  390.     From: jeff@CitIago.Bitnet (Jeff Goldsmith)
  391.  
  392. Has implemented ray-tracer with distributed database on hypercube.
  393. Communication between parts of database by RPC. With 128 processors 50%
  394. utilization. (Ref: 3rd Hypercube Concurrent Computation Proc.)  A proposal to
  395. build custom silicon for intersection testing. In this case the rest of the
  396. system could reside on a ordinary PC or workstation.
  397.  
  398.     From: gray@rhea.cray.com (Gray Lorig)
  399.  
  400. "Your abstract sounds interesting."
  401.  
  402.     From: Frederik Jansen <JANSEN@ibm.com>
  403.  
  404. Mike Henderson at Yorktown Heights is working on ray/patch intersection problem
  405. (software approach).
  406.  
  407.     From: Mark VandeWettering <markv@drizzle.cs.uoregon.edu>
  408.  
  409. "As to HW implementation, my advice is NOT to take the path that I took, but to
  410. implement one simple primitive: a bilinear interpolated triangular patch."
  411. "Take a look at AT&T's 12 DSP chip raytracing board."  Would like to experiment
  412. with implementing an accelerator based on Motorola DSP56001.
  413.  
  414.     From: tim%ducat.caltech.edu@Hamlet.Bitnet (Tim Kay)
  415.  
  416. "I am interested how fast a *single* general purpose processor can raytrace
  417. when it is assisted by a raytracing coprocessor of some sort. there seems to be
  418. tremendous potential for adding a small amount of raytracing HW to graphics
  419. work stations." "I am quite capable of ray tracing over our TCP/IP network."
  420.  
  421.  
  422.     From: priol@tokaido.irisa.fr
  423.  
  424. "I work on ray-tracing on a MIMD computer like the Hypercube." Partitions scene
  425. boundary as suggested by Cleary. To do it well sub-samples image before
  426. parallel execution. With 30-40 processors 50% efficiency. Part of work
  427. published in Eurographics'88.
  428.  
  429.     From: toc@wisdom.TN.CORNELL.EDU (Timothy F. O'Connor)
  430.  
  431. "Abstract sounds interesting. My main interest is in radiosity approach."
  432.  
  433.     From: Russ Tuck <tuck@cs.unc.edu>
  434.  
  435. "My work is summarized in hardcopy RTnews vol.2, no. 2, June '88, "Interactive
  436. SIMD Ray Tracing."
  437.  
  438. That's it for now. I hope there has been some interest in this multi-feedback.
  439. I'll get more meat of my own in the messages when our new work starts.
  440.  
  441. Thanks to you all! / Markku
  442.  
  443. -------------------------------------------------------------------------------
  444.  
  445. Miscellany
  446. ----------
  447.  
  448. From: hpfcla!subramn@cs.utexas.edu
  449. Subject: Ray Tracing articles.
  450.  
  451. I would like you to bring this to the attention of the RT news group (if you
  452. consider it appropriate).
  453.  
  454. There are lots of conference proceedings and journals other than SIGGRAPH &
  455. CG&A which contain ray tracing articles. At least, here, at our university we
  456. don't get all those journals (for example, the Visual Computer) due to budget
  457. constraints.  It would be nice for someone to post relevant articles on ray
  458. tracing so that all of us will be aware of the work going on in ray tracing
  459. every where. For instance, I have found several articles in the Visual Computer
  460. that were relevant to what I was doing after being pointed at by someone else.
  461. If these can be listed by someone who gets these journals, then it would make
  462. it easier to get access to these articles.
  463.  
  464. K.R.Subramanian
  465. Dept. of Computer Sciences
  466. The University of Texas at Austin
  467. Austin, Tx-78712.
  468. subramn@cs.utexas.edu
  469. {uunet}!cs.utexas.edu!subramn
  470.  
  471. --------
  472.  
  473. [My two cents: we don't get "Visual Computer" around here, either.  I've been
  474. helping to keep Paul Heckbert's "Ray Tracing Bibliography" up to date and would
  475. like to obtain relevant references (preferably in REFER format) for next year's
  476. copy for use in SIGGRAPH course notes. See SIGGRAPH '88 notes from the
  477. "Introduction to Ray Tracing" course for the current version to see the state
  478. of our reference list. - Eric]
  479.  
  480. ----------------------------------------
  481.  
  482. From: "David F. Rogers" <hpfcla!dfr@USNA.MIL>
  483. Subject:  Transforming normals
  484.  
  485. Was skimming the back issues of the RT News and your memo on transforming
  486. normals caught my eye. Another way of looking at the problem is to recall that
  487. a polygonal volume is made up of planes that divide space into two parts. The
  488. columns of the volume matrix are formed from the coefficients of the plane
  489. equations. Transforming a volume matrix requires that you premultiply by the
  490. inverse of the manipulation matrix. The components of a normal are the first
  491. three coefficients of the plane equation. Hence the same idea should apply.
  492. (see PECG Sec. 4-3 on Robert's algorithm pp 211-213).  Surprising what you can
  493. learn from Roberts' algorithm yet most people discount it.
  494.  
  495. ----------------------------------------
  496.  
  497. >From: stadnism@clutx.clarkson.edu (Steven Stadnicki,212 Reynolds,2684079,5186432664)
  498. Subject: Some new thoughts on how to do caustics, mirrored reflection, etc.
  499. [source: comp.graphics]
  500.  
  501. Here's a new idea I came up with to do caustics, etc. by ray tracing: from your
  502. point on some surface, shoot out some number (say ~100) in "random" directions
  503. (I would probably use a jittered uniform distribution on the sphere).  For each
  504. light source, keep track of all rays that come within some "distance" (some
  505. angle) from the light source.  Then, for each of these rays, try getting closer
  506. to the light source using some sort of Newton-type iteration method... for
  507. example, to do mirrored reflection:
  508.  
  509.            \|/
  510.            -o-   Light source
  511.            /|\
  512.                                |  
  513.                 +---+          | M
  514.                 | O |          | i
  515.                 | b |          | r
  516.                 | j |          | r
  517.                 | e |          | o
  518.                 | c |          | r
  519.                 | t |          |
  520. ----------------+---+--X-------+
  521.  
  522. >From point X, shoot out rays in the ~100 "random" directions mentioned above;
  523. say one of them comes within 0.05 radians of the light source.  Do some sort of
  524. update procedure on the ray to see if it keeps getting closer to the light
  525. source; if it does, then you have a solution to the "mirrored reflection"
  526. problem, and you can shade X properly.  This procedure will work for curved
  527. mirrors as well as planar ones (unlike the previous idea I mentioned), and will
  528. also handle caustics well.  It seems obvious to me that there will be bad cases
  529. for the method, and it is certainly computationally expensive, but it looks
  530. like a useful method.  Any comments?
  531.  
  532.                                          Steven Stadnicki
  533.                                          Clarkson University
  534.                                          stadnism@clutx.clarkson.edu
  535.                                          stadnism@clutx.bitnet
  536.  
  537. ----------------------------------------
  538.  
  539. >From: jms@antares.UUCP (joe smith)
  540. Organization: Tymnet QSATS, San Jose CA
  541. Subject: Re: Ray Tracing Novice Needs Your Help
  542. [source: comp.graphics]
  543.  
  544. In article <2399@ssc-vax.UUCP> dmg@ssc-vax.UUCP (David Geary) writes:
  545. >  What I'd really like is to have the source in C to a *simple*
  546. >ray-tracer - one that I could port to my Amiga without too much 
  547. >difficulty.
  548. >~ David Geary, Boeing Aerospace,               ~ 
  549.  
  550. My standard answer to this question when it comes up is to locate the May/June
  551. 1987 issue of Amiga World.  It's the one that has the ray-traced robot juggler
  552. on the cover.  The article "Graphic Scene Simulations" is a great overview of
  553. the subject, and it includes the program listing in C.  (Well, most of the
  554. program.  Details such as inputting the coordinates of all the objects are
  555. omitted.)
  556.  
  557. ----------------------------------------
  558.  
  559. From: hpfcla!sunrock!kodak!supra!reichert@Sun.COM (Mark Reichert x25948)
  560. Subject: A call for vectors.....
  561.  
  562. Imagine a unit sphere centered at the origin.
  563.  
  564. Imagine a vector, the "reference vector", from the origin to any point on the
  565. surface of this sphere.
  566.  
  567. I would like to create n vectors which will evenly sample the surface of our
  568. sphere, within some given angle about that "reference vector".
  569.  
  570. I need to be able to jitter these vectors in such a way that no two vectors in
  571. a given bunch could be the same.
  572.  
  573.  
  574. This appears to be a job for spherical coordinates, but I can't seem to find a
  575. formula that can treat the surface of a sphere as a "uniform" 2D surface (ie.
  576. no bunching up at the poles).
  577.  
  578.  
  579. I desire these vectors for generating soft shadows from spherical light
  580. sources, and for diffuse illumination guessing.
  581.  
  582.  
  583. I have something now which is empirical and slow - neither of which trait I
  584. find very desirable.
  585.  
  586. I will have a need for these vectors often, and seldom will either the
  587. angle or the number of vectors needed be the same across consecutive requests.
  588.  
  589.  
  590. Can anyone help me?
  591.  
  592. ----------------------------------------
  593.  
  594. >From: hoops@watsnew.waterloo.edu (HOOPS Workshop)
  595. Subject: Needing Ray Tracing Research Topic
  596. [source: comp.graphics]
  597.  
  598. As a System Design Engineeering undergrad at University of Waterloo, I am
  599. responsible for preparing a 'workshop' paper each term.  I am fascinated with
  600. ray tracing graphics, but what I really need is a good application that I can
  601. work into a workable research topic that can be completed in 1 or 2 terms.
  602.  
  603. If anyone in netland can offer any information on an implementation of ray
  604. tracing graphics for my workshop please email me.
  605.  
  606. Thanks in advance folks,
  607.  
  608. Tracey Bernath
  609. System Design Engineering
  610. University of Waterloo
  611. Waterloo, Ontario, Canada 
  612.  
  613.               hoops@watsnew.uwaterloo.ca
  614.  Bitnet:      hoops@water.bitnet                
  615.  CSNet:       hoops@watsnew.waterloo.edu        
  616.  uucp:        {utai,uunet}!watmath!watsnew!hoops
  617.  
  618. -------------------------------------------------------------------------------
  619.  
  620. Supersampling Discussion
  621. ------------- ----------
  622.  
  623. [A flurry of activity arose when someone asked about doing supersampling in a
  624. ray tracer.  Below are some of the more interesting and useful replies. - Eric]
  625.  
  626. ----------------------------------------
  627.  
  628. >From: jevans@cpsc.ucalgary.ca (David Jevans)
  629. [source: comp.graphics]
  630. Summary: blech
  631.  
  632. In article <5548@thorin.cs.unc.edu>, brown@tyler.cs.unc.edu (Lurch) writes:
  633. > In article <5263@cbmvax.UUCP> steveb@cbmvax.UUCP (Steve Beats) writes:
  634. > >In article <1351@umbc3.UMD.EDU> bodarky@umbc3.UMD.EDU (Scott Bodarky) writes:
  635. > >If you sample the scene using one pixel per ray, you will get
  636. > >pretty severe aliasing at high contrast boundaries.  One trick is to sample
  637. > >at twice the vertical and horizontal resolution (yielding 4 rays per pixel)
  638. > >and average the resultant intensities.  This is a pretty effective method
  639. > >of anti-aliasing.
  640.  
  641. > From what I understand, the way to achieve 4 rays per pixel is to sample at
  642. > vertical resolution +1, horizontal resolution +1, and treat each ray as a
  643. > 'corner' of each pixel, and average those values.  This is super cheap compared
  644. > to sampling at twice vertical and horizontal.
  645.  
  646. Blech!  Super-sampling, as suggested in the first article, works ok but is very
  647. slow and 4 rays/pixel is not enough for high quality images.  Simply rendering
  648. vres+1 by hres+1 doesn't gain you anything.  All you end up doing is blurring
  649. the image.  This is VERY unpleasant and makes an image look out of focus.
  650.  
  651. Aliasing is an artifact of regular under-sampling.  Most people adaptively
  652. super-sample in areas where it is needed (edges, textures, small objects).
  653. Super-sampling in a regular pattern often requires more than 16 rays per
  654. anti-aliased pixel to get acceptable results.  A great improvement comes from
  655. filtering your rays instead of simply averaging them.  Even better is to fire
  656. super-sample rays according to some distribution (eg. Poisson) and then filter
  657. them.
  658.  
  659. Check SIGGRAPH proceedings from about 84 - 87 for relevant articles and
  660. pointers to articles.  Changing a ray tracer from simple super-sampling to
  661. adaptive super-sampling can be done in less time than it takes to render an
  662. image, and will save you HUGE amounts of time in the future.  Filtering and
  663. distributing rays takes more work, but the results are good.
  664.  
  665. David Jevans, U of Calgary Computer Science, Calgary AB  T2N 1N4  Canada
  666. uucp: ...{ubc-cs,utai,alberta}!calgary!jevans
  667.  
  668. ----------------------------------------
  669.  
  670. >From: awpaeth@watcgl.waterloo.edu (Alan Wm Paeth)
  671. Subject: Re: raytracing in || (supersampling speedup)
  672. [source: comp.graphics]
  673.  
  674. In article <5548@thorin.cs.unc.edu> brown@tyler.UUCP (Lurch) writes:
  675. >
  676. >From what I understand, the way to achieve 4 rays per pixel is to sample at
  677. >vertical resolution +1, horizontal resolution +1, and treat each ray as a
  678. >'corner' of each pixel, and average those values.  This is super cheap compared
  679. >to sampling at twice vertical and horizontal.
  680.  
  681. This reuses rays, but since the number of parent rays and number of output
  682. pixels match, this has to be the same as low-pass filtering the output produced
  683. by a raytracer which casts the same number of rays (one per pixel).
  684.  
  685. The technique used by Sweeney in 1984 (while here at Waterloo) compares the
  686. four pixel-corner rays and if they are not in close agreement subdivides the
  687. pixel.  The recursion terminates either when the rays from the subpixel's
  688. corners are in close agreement or when some max depth is reached. The subpixel
  689. values are averaged to form the parent pixel intensity (though a more general
  690. convolution could be used in gathering up the subpieces).
  691.  
  692. This approach means that the subpixel averaging takes place adaptively in
  693. regions of pixel complexity, as opposed to globally filtering the entire output
  694. raster (which the poster's approach does implicitly).
  695.  
  696. The addition can be quite useful. For instance, a scene of flat shaded polygons
  697. renders in virtually the same time as a "one ray per pixel" implementation,
  698. with some slight overhead well spent in properly anti-aliasing the polygon
  699. edges -- no time is wasted on the solid areas.
  700.  
  701.    /Alan Paeth
  702.    Computer Graphics Laboratory
  703.    University of Waterloo
  704.  
  705. ----------------------------------------
  706.  
  707. >From: andreww@dgp.toronto.edu (Andrew Chung How Woo)
  708. Subject: anti-aliasing
  709. [source: comp.graphics]
  710.  
  711. With all these discussions about anti-aliasing for ray tracing, I thought I
  712. would get into the fun also.
  713.  
  714. As suggested by many people, adaptive sampling is a good way to start dealing
  715. with anti-aliasing (suggested by Whitted).  For another quick hack on top of
  716. adaptive sampling, you can add jitter (suggested by Cook).  The jitter factor
  717. can be controlled by the recursive depth of the adaptive sampling.  This
  718. combination tends to achieve decent quality.
  719.  
  720. Another method which nobody has mentioned is "stratified sampling".  This is
  721. also a rather simple method.  Basically, the pixel is divided into a N-size
  722. grid.  You have a random number generator to sample a ray at (x,y) of the grid.
  723. Then shoot another ray, making sure that the row x and column y are discarded
  724. from further sampling, etc.  Repeat this for N rays.  Note, however, no sharing
  725. of point sampling information is available here.
  726.  
  727. Andrew Woo
  728.  
  729. ----------------------------------------
  730.  
  731. >From: loren@pixar.UUCP (Loren Carpenter)
  732. Subject: Re: anti-aliasing
  733. [source: comp.graphics]
  734.  
  735. [This is in response to Andrew Woo's article - Eric]
  736.  
  737. Rob Cook did this too.  He didn't call it "stratified sampling", though.  The
  738. idea is suggested by the solutions to the "8 queens problem".  You want N
  739. sample points, no 2 of which are in the same column, and no 2 of which are in
  740. the same row.  Then you jitter on top of that....
  741.  
  742. p.s.  You better not use the same pattern for each pixel...
  743.  
  744.  
  745.             Loren Carpenter
  746.             ...!{ucbvax,sun}!pixar!loren
  747.  
  748. ----------------------------------------
  749.  
  750. [By the way, what kind of adaptive supersampling have people been using?  We've
  751. had fairly good results with the simple "check four corners" algorithm and box
  752. filtering the values generated.  We find that for complex scenes an adaptive
  753. algorithm (which shoots 5 more rays if the subdivision criteria is met) shoots
  754. about 25% more rays overall (a result that Linda Roy also obtained with her
  755. ray-tracer).  What the subdivision criteria are affects this, of course.  We've
  756. been using 0.1 as the maximum ratio of R,G, or B channels of the four pixel
  757. corners.  How have you fared, and what kinds of filtering have you tried?
  758. - Eric]
  759.  
  760. -------------------------------------------------------------------------------
  761.  
  762. Distributed Ray Tracer Available
  763.  
  764. >From: kyriazis@rpics (George Kyriazis)
  765. [source: comp.graphics]
  766.  
  767.     During the last week I put myself together and managed to pull out a
  768. second version of my ray tracer (the old one was under the subject: "Another
  769. simple ray tracer available").  Tis one includes most of the options described
  770. in R. Cook's paper on Distributed ray tracing.
  771.  
  772. Capabilities of the ray tracer are:
  773.     Gloss (blurred reflection)
  774.     Translucency (blurred refraction)
  775.     Penumbras (area light sources)
  776.     Motion Blur
  777.     Phong illumination model with one light source
  778.     Spheres and squares
  779.     Field of view and arbitrary position of the camera
  780.  
  781. The ray tracer has been tested on a SUN 3 and SUN 4.  I have it available under
  782. anonymous ftp on life.pawl.rpi.edu (128.113.10.2) in the directory pub/ray
  783. under the name ray.2.0.shar.  There are some older version there if you want to
  784. take a look at them.  If you can't ftp there send me mail and I'll send you a
  785. copy.  I also have a version for the AT&T Pixel Machine (for the few that have
  786. access to one!).
  787.  
  788. No speed improvements have been made yet, but I hope I will have Goldsmith's
  789. algorithm running on it soon.  I know that my file format is not standard, but
  790. people can try to write their own routine to read the file.  It's pretty easy.
  791.  
  792. Hope you have fun!
  793.  
  794.  
  795.   George Kyriazis
  796.   kyriazis@turing.cs.rpi.edu
  797.   kyriazis@ss0.cicg.rpi.edu
  798.  
  799. -------------------------------------------------------------------------------
  800.  
  801. Ray Tracing Program for 3b1
  802.  
  803. >From: sid@chinet.UUCP (Sid Grange)
  804. Subject: v05i046: ray tracing program for 3b1
  805. [source: comp.sources.misc]
  806. Posting-number: Volume 5, Issue 46
  807. Archive-name: tracer
  808.  
  809. [This was posted to comp.sources.misc.  I include some of the documentation so
  810. you can get a feel for it. Nothing special, but it might be fun if you have a
  811. 3b1 (it's supposed to work on other UNIX systems, too). - Eric]
  812.  
  813. NAME
  814.      tracer- run a simple ray tracing procedure
  815.  
  816. DESCRIPTION
  817.      Tracer is a program developed originally to study how
  818.      ray tracing works, and was later modified to the present state
  819.      to make it more compatible for animated film production.
  820.  
  821.      It is capable of depicting a number of balls (up to 150)
  822.      and a plane that is covered with a tiling of any bitmapped picture.
  823.  
  824. PROGRAM NOTES
  825.      This program generates a file containing a header with x and y sizes,
  826.      followed by the data in 8-bit greyscale, one pixel to a character, in 
  827.      scanlines.
  828.      There are two necessary input files: ball data, and a pattern bitmap.
  829.      The tiling bitmap can be digitized data, it must be in the form of 
  830.      scan lines no longer than 512 bytes followed by newlines.
  831.  
  832. -------------------------------------------------------------------------------
  833.  
  834. Map Archive
  835.  
  836. >From: crum@lipari.usc.edu (Gary L. Crum)
  837. Subject: DB:ADD SITE panarea.usc.edu (Internet archive for maps)
  838. [source: comp.archive, and ftp]
  839.  
  840. An Internet archive for maps of geographic-scale maps has been set up, starting
  841. with data from the United States Geological Survey (USGS) National Cartographic
  842. Information Center (NCIC), specifically a map of terrain in USGS Digital
  843. Elevation Model (DEM) format.
  844.  
  845. The archive is on host panarea.usc.edu [128.125.3.54], in anonymous FTP
  846. directory pub/map.  Gary Crum <crum@cse.usc.edu> is maintainer.
  847.  
  848. The pub/map directory is writable by anonymous ftp.  Approximately 50M bytes
  849. are available for the map archive as of this writing.
  850.  
  851. NOTES:
  852.  
  853. * Files ending in the .Z extension have been compressed with the "compress"
  854. program available on comp.sources archives such as j.cc.purdue.edu.  They
  855. should be transferred using the "binary" mode of ftp to UNIX systems.  Send
  856. mail to the maintainer to request format changes (e.g., to uuencoded form split
  857. into small pieces).
  858.  
  859. * Some maps, e.g., DEM files from USGS, contain long lines which have been
  860. observed to cause problems transferring with some FTP implementations.  In
  861. particular, a version of the CMU TCP/IP package for VAX/VMS did not support
  862. these long lines.
  863.  
  864. * Source code for UNIX tools that manipulate ANSI labeled tapes and VMS tapes
  865. is available as pub/ansitape.tar.Z on the map archive host.
  866.  
  867. -----------------
  868.  
  869. Index for Map Archive on Internet Host panarea.usc.edu [128.125.3.54].
  870. version of Mon Nov 14 09:41:10 PST 1988
  871.  
  872. NOTE:  This INDEX is descriptive to only the directory level in many cases.
  873.  
  874. -rw-r--r--  1 crum      1090600 May 26 09:33 dem/MAP.N0009338
  875. -rw-r--r--  1 crum       278140 Nov 11 14:16 dem/MAP.N0009338.Z
  876.     Digital Elevation Model 7.5 minute quad (see dem/README).
  877.     Ft. Douglas quadrangle, including part of Salt Lake City, UT.
  878.     Southeast corner has coordinates 40.75 N 111.75 W
  879.  
  880. drwxrwxrwx  2 crum          512 Nov  1 19:23 terrain-old-format/MAP.37N112W
  881. drwxrwxrwx  2 crum          512 Nov  1 19:23 terrain-old-format/MAP.37N119W
  882. drwxrwxrwx  2 crum          512 Nov  1 19:24 terrain-old-format/MAP.38N119W
  883.     USGS NCIC terrain maps in "old" format before DEM was introduced.
  884.     Files in these directories ending in extensions .[a-s] should be
  885.     concatenated together after transfer.
  886.  
  887. -rw-rw-rw-  1 45         777251 Nov 11 11:10 world-digitized/world-digitized.tar.Z
  888. drwxrwxr-x  7 crum          512 Nov 11 10:56 world-digitized/extracted
  889.     The "extracted" directory is produced from the tar file.
  890.     From world-digitized/expanded/doc/read.me :
  891.         The World Digitized is a collection of more than 100,000
  892.     points of latitude and longitude.  When connected together, these
  893.     co-ordinates form outlines of the entire world's coastlands, islands,
  894.     lakes, and national boundaries in surprising detail.
  895.  
  896. drwxrwxrwx  2 crum         1024 Nov 12 19:10 dlg/35N86W
  897.     Digital Line Graph of area with top-left coordinates 35 N 86 W.
  898.     See dlg/README.  From roskos@ida.org (Eric Roskos).
  899.  
  900. -------------------------------------------------------------------------------
  901.  
  902. Index of Back Issues, by Eric Haines
  903.  
  904.  
  905. This is a list of all back issues of the RT News, email edition.  I'm
  906. retroactively giving these issues numbers for quick reference purposes.
  907. Topics are fully listed in the first issue in which they are discussed, and
  908. follow-up material is listed in braces {}.  I've tried to summarize the
  909. main topics covered, not the individual articles.
  910.  
  911.  
  912. [Volume 0, August-December 1987] - Standard Procedural Databases, Spline
  913.     Surface Intersection, Abnormal Normals
  914.  
  915. [Volume 1, Number 1,] 1/15/88 - Solid Modelling with Faceted Primitives,
  916.     What's Wrong [and Right] with Octrees, Top Ten Hit Parade of Computer
  917.     Graphics Books, Comparison of Efficiency Schemes, Subspaces and
  918.     Simulated Annealing.
  919.  
  920. [Volume 1, Number 2,] 2/15/88 - Dore'
  921.  
  922. [Volume 1, Number 3,] 3/1/88 - {comments on Octrees, Simulated Annealing},
  923.     Efficiency Tricks, More Book Recommendations, Octree Bug Alert
  924.  
  925. [Volume 1, Number 4,] 3/8/88 - Surface Acne, Goldsmith/Salmon Hierarchy
  926.     Building, {more Efficiency Tricks}, Voxel/Quadric Primitive Overlap
  927.     Determination
  928.  
  929. [Volume 1, Number 5,] 3/26/88 - {more on Efficiency, Voxel/Quadric}, Linear
  930.     Time Voxel Walking for Octrees, more Efficiency Tricks, Puzzle,
  931.     PECG Correction
  932.  
  933. [Volume 1, Number 6,] 4/6/88 - {more on Linear Time Voxel Walking}, Thoughts
  934.     on the Theory of RT Efficiency, Automatic Creation of Object
  935.     Hierarchies (Goldsmith/Salmon), Image Archive, Espresso Database
  936.     Archive
  937.  
  938. [Volume 1, Number 7,] 6/20/88 - RenderMan & Dore', Commercial Ray Tracing
  939.     Software, Benchmarks
  940.  
  941. [Volume 1, Number 8,] 9/5/88 - SIGGRAPH '88 RT Roundtable Summary, {more
  942.     Commercial Software}, Typo in "Intro to RT" Course Notes, Vectorizing
  943.     Ray-Object Intersections, Teapot Database Archive, Mark
  944.     VandeWettering's Ray Tracer Archive, DBW Render, George Kyriazis
  945.     Ray Tracer Archive, Hartman/Heckbert PostScript Ray Tracer (source),
  946.  
  947. [Volume 1, Number 9,] 9/11/88 - {much more on MTV's Ray Tracer and utilities},
  948.     Archive for Ray Tracers and databases (SPD, teapot), Sorting on Shadow
  949.     Rays for Kay/Kajiya, {more on Vectorizing Ray-Object Intersection},
  950.     {more on George Kyriazis' Ray Tracer}, Bitmaps Library
  951.  
  952. [Volume 1, Number 10,] 10/3/88 - Bitmap Utilities, {more on Kay/Kajiya},
  953.     Wood Texture Archive, Screen Bounding Boxes, Efficient Polygon
  954.     Intersection, Bug in Heckbert Ray Tracer (?), {more on MTV's Ray
  955.     Tracer and utilities}, Neutral File Format (NFF)
  956.  
  957. [Volume 1, Number 11,] 11/4/88 - Ray/Triangle Intersection with Barycentric
  958.     Coordinates, Normal Transformation, {more on Screen Bounding Boxes},
  959.     {comments on NFF}, Ray Tracing and Applications, {more on Kay/Kajiya
  960.     and eye rays}, {more on Wood Textures}, Virtual Lighting, Parallel
  961.     Ray Tracing, RenderMan, On-Line Computer Graphics References Archive,
  962.     Current Mailing List
  963.  
  964. -----------------------------------------------------------------------------
  965. END OF RTNEWS
  966.  _ __                 ______                         _ __
  967. ' )  )                  /                           ' )  )
  968.  /--' __.  __  ,     --/ __  __.  _. o ____  _,      /  / _  , , , _
  969. /  \_(_/|_/ (_/_    (_/ / (_(_/|_(__<_/ / <_(_)_    /  (_</_(_(_/_/_)_
  970.              /                               /|
  971.             '                               |/
  972.  
  973.             "Light Makes Right"
  974.  
  975.              February 20, 1989
  976.                  Volume 2, Number 2
  977.  
  978. Compiled by Eric Haines, 3D/Eye Inc, 2359 Triphammer Rd, Ithaca, NY 14850
  979.     607-257-1381, hpfcla!hpfcrs!eye!erich@hplabs.hp.com
  980. All contents are US copyright (c) 1989 by the individual authors
  981.  
  982. Contents:
  983.     Introduction (Eric Haines)
  984.     New Subscribers (Turner Whitted, Mike Muuss)
  985.     The BRL CAD Package (Mike Muuss)
  986.     New Book: _Illumination and Color in Computer Generated Imagery_, Roy Hall
  987.     (Eric Haines)
  988.     Uniform Distribution of Sample Points on a Surface
  989.     Depth of Field Problem (Marinko Laban)
  990.     Query on Frequency Dependent Reflectance (Mark Reichert)
  991.     "Best of comp.graphics" ftp Site (Raymond Brand)
  992.     Notes on Frequency Dependent Refraction [comp.graphics]
  993.     Sound Tracing [comp.graphics]
  994.     Laser Speckle [comp.graphics]
  995.  
  996. -----------------------------------------------------------------------------
  997.  
  998. Introduction, by Eric Haines
  999.  
  1000. Whew, things have piled up!  I've culled my comp.graphics findings as best as
  1001. I can.  I've decided to delete everything on the question of what a stored
  1002. ray-trace image should be called ("image", "bytemap", "pixmap", and "bitmap"
  1003. were some of the candidates).  It's a good question, but the discussion just
  1004. got too long to recap.  Paul Heckbert's original posting advocated not using
  1005. "bitmap" for 24 bit images, since "bitmap" denotes an M x N x 1 bit deep image
  1006. in most settings.  It would be pleasant to get a consensus on acceptable usage,
  1007. but it's also interesting to me from a `word history' standpoint.  If you have
  1008. an opinion you'd like to share on this topic, pass it on to me and I'll
  1009. summarize them (if possible, a 25 word or less summation would be nice).  My
  1010. own is: "I'm a product of my environment.  Cornell used bitmap, Hewlett-Packard
  1011. uses bitmap, so I tend to use `bitmap', `24 bit deep bitmap', or `image'".
  1012.  
  1013. I've put all the comp.graphics postings at the end, and the good news is that
  1014. the queue is now empty.  The `Sound Tracing' postings to comp.graphics were many
  1015. and wordy.  I've tried to pare them down to references, interesting questions
  1016. that arose, and informed (or at least informed-sounding to my naive ears)
  1017. opinions.
  1018.  
  1019. -----------------------------------------------------------------------------
  1020.  
  1021. New Subscribers
  1022. ---------------
  1023.  
  1024. # Turner Whitted
  1025. # Numerical Design Limited
  1026. # 133 1/2 E. Franklin Street
  1027. # P.O. Box 1316
  1028. # Chapel Hill, NC 27514
  1029. alias    turner_whitted    gould!rti!ndl!jtw@sun.com
  1030.  
  1031. [this mail path is just a good guess - does gould have an arpa connection?
  1032. The uucp path I use is:
  1033.         turner_whitted    hpfcrs!hpfcla!hplabs!sun!gould!rti!ndl!jtw
  1034. ]
  1035.  
  1036.  
  1037. # Michael John Muuss -- ray-tracing for predictive analysis of 3-D CSG models
  1038. # Leader, Advanced Computer Systems Team
  1039. # Ballistic Research Lab
  1040. # APG, MD  21005-5066
  1041. # USA
  1042. # ARPANET:  mike@BRL.MIL
  1043. # (301)-278-6678         [telephone is discouraged, use E-mail instead]
  1044. alias    mike_muuss    mike@BRL.MIL
  1045.  
  1046. I lead BRL's Advanced Computer Systems Team (ACST) in research projects in
  1047. (a) CSG solid modeling, ray-tracing, and analysis, (b) advanced processor
  1048. architectures [mostly MIMD of late], (c) high-speed networking, and (d)
  1049. operating systems.  We are the developers of the BRL-CAD Package, which is a
  1050. sophisticated Combinatorial Solid Geometry (CSG) solid modeling system, with
  1051. ray-tracing library, several lighting models, a variety of non-optical
  1052. "lighting" models (eg, radar) [available on request], a device independent
  1053. framebuffer library, a collection of image-processing tools, etc.  This
  1054. software totals about 150,000 lines of C code, which we make available in
  1055. source form under the terms of a "limited distribution agreement" at no charge.
  1056.  
  1057. My personal interests wander all over the map, right now I'm fiddling with some
  1058. animation software, some D/A converters for digital music processing, and some
  1059. improvements to our network-distributed ray-tracer protocol.
  1060.  
  1061. Thanks for the invitation to join!
  1062.  
  1063.     Best,
  1064.      -mike
  1065.  
  1066. -----------------------------------------------------------------------------
  1067.  
  1068.             The BRL CAD PACKAGE
  1069.                Short Summary
  1070.  
  1071. In FY87 two major releases of the BRL CAD Package  software  were
  1072. made (Feb-87, July-87), along with two editions of the associated
  1073. 400 page manual. The package includes a powerful  solid  modeling
  1074. capability and a network-distributed image-processing capability.
  1075. This software is now running at over  300  sites.   It  has  been
  1076. distributed to 42 academic institutions in twenty states and four
  1077. countries including Yale, Princeton, Stanford, MIT,USC, and UCLA.
  1078. The University of California - San Diego is using the package for
  1079. rendering  brains  in  their  Brain  Mapping   Project   at   the
  1080. Quantitative Morphology Laboratory.  75 different businesses have
  1081. requested and received the  software  including  23  Fortune  500
  1082. companies   including:   General  Motors,  AT&T,  Crysler  Motors
  1083. Corporation,  Boeing,  McDonnell   Douglas,   Lockheed,   General
  1084. Dynamics,  LTV  Aerospace & Defense Co., and Hewlett Packard.  16
  1085. government organizations representing all  three  services,  NSA,
  1086. NASA,  NBS  and  the Veterns Administration are running the code.
  1087. Three of the four national laboratories have copies  of  the  BRL
  1088. CAD  package.   More  than  500  copies  of  the manual have been
  1089. distributed.
  1090.  
  1091. BRL-CAD started in 1979 as a task to provide an interactive
  1092. graphics editor for the BRL target description data base.
  1093.  
  1094. Today it is > 100,00 lines of C source code:
  1095.  
  1096.     Solid geometric editor
  1097.     Ray tracing utilities
  1098.     Lighting model
  1099.     Many image-handling, data-comparison, and other
  1100.     supporting utilities
  1101.  
  1102. It runs under UNIX and is supported over more than a dozen product
  1103. lines from Sun Workstations to the Cray 2.
  1104.  
  1105. In terms of geometrical representation of data, BRL-CAD supports:
  1106.  
  1107.     the original Constructive Solid Geometry (CSG) BRL data
  1108.     base which has been used to model > 150 target descriptions,
  1109.     domestic and foreign
  1110.  
  1111.     extensions to include both a Naval Academy spline 
  1112.     (Uniform B-Spline Surface) as well as a U. of
  1113.     Utah spline (Non-Uniform Rational B-Spline [NURB] Surface)
  1114.     developed under NSF and DARPA sponsorship
  1115.  
  1116.     a facerted data representation, (called PATCH),
  1117.     developed by Falcon/Denver
  1118.     Research Institute and used by the Navy and Air Force for
  1119.     vulnerability and signature calculations (> 200 target
  1120.     descriptions, domestic and foreign
  1121.  
  1122. It supports association of material (and other attribute properties)
  1123. with geometry which is critical to subsequent applications codes.
  1124.  
  1125. It supports a set of extensible interfaces by means of which geometry
  1126. (and attribute data) are passed to applications:
  1127.  
  1128.     Ray casting
  1129.     Topological representation
  1130.     3-D Surface Mesh Generation
  1131.     3-D Volume Mesh Generation
  1132.     Analytic (Homogeneous Spline) representation
  1133.  
  1134. Applications linked to BRL-CAD:
  1135.  
  1136. o Weights and Moments-of-Inertia
  1137. o An array of Vulnerability/Lethality Codes
  1138. o Neutron Transport Code
  1139. o Optical Image Generation (including specular/diffuse reflection,
  1140.     refraction, and multiple light sources, animation, interference)
  1141. o Bistatic laser target designation analysis
  1142. o A number of Infrared Signature Codes
  1143. o A number of Synthetic Aperture Radar Codes (including codes
  1144.     due to ERIM and Northrop)
  1145. o Acoustic model predictions
  1146. o High-Energy Laser Damage
  1147. o High-Power Microwave Damage
  1148. o Link to PATRAN [TM] and hence to ADINA, EPIC-2, NASTRAN, etc.
  1149.     for structural/stress analysis
  1150. o X-Ray calculation
  1151.  
  1152. BRL-CAD source code has been distributed to approximately 300
  1153. computer sites, several dozen outside the US.
  1154.  
  1155. ----------
  1156.  
  1157. To obtain a copy of the BRL CAD Package distribution, you must send
  1158. enough magnetic tape for 20 Mbytes of data. Standard nine-track
  1159. half-inch magtape is the strongly preferred format, and can be written
  1160. at either 1600 or 6250 bpi, in TAR format with 10k byte records. For
  1161. sites with no half-inch tape drives, Silicon Graphics and SUN tape
  1162. cartridges can also be accommodated. With your tape, you must also
  1163. enclose a letter indicating
  1164.  
  1165. (a) who you are,
  1166. (b) what the BRL CAD package is to be used for,
  1167. (c) the equipment and operating system(s) you plan on using,
  1168. (d) that you agree to the conditions listed below.
  1169.  
  1170. This software is an unpublished work that is not generally available to
  1171. the public, except through the terms of this limited distribution.
  1172. The United States Department of the Army grants a royalty-free,
  1173. nonexclusive, nontransferable license and right to use, free of charge,
  1174. with the following terms and conditions:
  1175.  
  1176. 1.  The BRL CAD package source files will not be disclosed to third
  1177. parties.  BRL needs to know who has what, and what it is being used for.
  1178.  
  1179. 2.  BRL will be credited should the software be used in a product or written
  1180. about in any publication.  BRL will be referenced as the original
  1181. source in any advertisements.
  1182.  
  1183. 3.  The software is provided "as is", without warranty by BRL.
  1184. In no event shall BRL be liable for any loss or for any indirect,
  1185. special, punitive, exemplary, incidental, or consequential damages
  1186. arising from use, possession, or performance of the software.
  1187.  
  1188. 4.  When bugs or problems are found, you will make a reasonable effort
  1189. to report them to BRL.
  1190.  
  1191. 5.  Before using the software at additional sites, or for permission to
  1192. use this work as part of a commercial package, you agree to first obtain
  1193. authorization from BRL.
  1194.  
  1195. 6.  You will own full rights to any databases or images you create with this
  1196. package.
  1197.  
  1198. All requests from US citizens, or from US government agencies should be
  1199. sent to:
  1200.  
  1201.     Mike Muuss
  1202.     Ballistic Research Lab
  1203.     Attn: SLCBR-SECAD
  1204.     APG, MD  21005-5066
  1205.  
  1206. If you are not a US citizen (regardless of any affiliation with a
  1207. US industry), or if you represent a foreign-owned or foreign-controlled
  1208. industry, you must send your letter and tape through your Ambassador to
  1209. the United States in Washington DC. Have your Ambassador submit the
  1210. request to:
  1211.  
  1212.     Army Headquarters
  1213.     Attn: DAMI-FL
  1214.     Washington, DC  20310
  1215.  
  1216. Best Wishes,
  1217.  -Mike Muuss
  1218.  
  1219. Leader, Advanced Computer Systems Team
  1220. ArpaNet:  <Mike @ BRL.ARPA>
  1221.  
  1222. --------
  1223.  
  1224. p.s. from David Rogers:
  1225.  
  1226. If you have the _Techniques in Computer Graphics_ book from Springer-Verlag the
  1227. frontispiece was done with RT the BRL ray tracer.  It is also discussed in a
  1228. paper by Mike Muuss in that book.
  1229.  
  1230. --------
  1231.  
  1232. p.s. from Eric Haines:
  1233.  
  1234. Mike Muuss was kind enought to send me the documentation (some two inches
  1235. thick) for the BRL package.  I haven't used the BRL software (sadly, it does
  1236. not seem to run on my HP machine yet - I hope someone will do a conversion
  1237. someday...), but the package looks pretty impressive.  Also, such things as the
  1238. Utah RLE package and `Cake' (an advanced form of `make') come as part of the
  1239. distribution.  There are also interesting papers on the system, the design
  1240. philosophy, parallelism, and many other topics included in the documentation.
  1241.  
  1242. -----------------------------------------------------------------------------
  1243.  
  1244. _Illumination and Color in Computer Generated Imagery_
  1245.     by Roy Hall, Springer-Verlag, New York, 1989, 282 pages
  1246.     (article by Eric Haines)
  1247.  
  1248. Roy Hall's book is out, and all I'll say about it is that you should have one.
  1249. The text (what little I've delved into so far) is well written and complemented
  1250. with many explanatory figures and images.  There are also many appendices
  1251. (about 100 pages worth) filled with concise formulae and "C" code.  Below is
  1252. the top-level Table of Contents below to give you a sense of what the book
  1253. covers.
  1254.  
  1255. The "C" code will probably be available publicly somewhere sometime soon.  I'll
  1256. post the details here when it's ready for distribution.
  1257.  
  1258.     1.0 Introduction                 8 pages
  1259.     2.0 The Illumination Process        36 pages
  1260.     3.0 Perceptual Response            18 pages
  1261.     4.0 Illumination Models            52 pages
  1262.     5.0 Image Display                40 pages
  1263.     Appendix I - Terminology             2 pages
  1264.     Appendix II - Controlling Appearance    10 pages
  1265.     Appendix III - Example Code            86 pages
  1266.     Appendix IV - Radiosity Algorithms        14 pages
  1267.     Appendix V - Equipment Sources         4 pages
  1268.     References                     8 pages
  1269.     Index                     4 pages
  1270.  
  1271. -----------------------------------------------------------------------------
  1272.  
  1273. Uniform Distribution of Sample Points on a Surface
  1274.  
  1275. [Mark Reichert asked last issue how to get a random sampling of a sphere]
  1276.  
  1277.     How to generate a uniformly distributed set of rays over the unit sphere:
  1278. Generate a point inside the bi-unit cube.  (Three uniform random numbers in
  1279. [-1,1].)  Is that point inside the unit sphere (and not at the origin)?  If
  1280. not, toss it and generate another (not too often.)  If so, treat it as a vector
  1281. and normalize it.  Poof, a vector on the unit sphere.  This won't guarantee a
  1282. isotropic covering of the unit sphere, but is helpful to generate random
  1283. samples.
  1284.  
  1285. --Jeff Goldsmith
  1286.  
  1287. --------
  1288.  
  1289.     One method is simply to do a longitude/latitude split-up of the sphere (and
  1290. randomly sampling within each patch), but instead of making the latitude lines
  1291. at even degree intervals, put the latitude divisions at even intervals along
  1292. the sphere axis (instead of even altitude [a.k.a. theta] angle intervals).
  1293. Equal axis divisions give us equal areas on the sphere's surface (amazingly
  1294. enough - I didn't believe it was this simple when I saw this in the Standard
  1295. Mathematics Tables book, so rederived it just to be sure).
  1296.  
  1297.     For instance, let's say you'd like 32 samples on a unit sphere.  Say we
  1298. make 8 longitude lines, so that now we want to make 4 patches per slice, and so
  1299. wish to make 4 latitudinal bands of equal area.  Splitting up the vertical axis
  1300. of the sphere, we want divisions at -0.5, 0, and 0.5.  To change these
  1301. divisions into altitude angles, we simply take the arcsin of the axis values,
  1302. e.g. arcsin(0.5) is 30 degrees.  Putting latitude lines at the equator and at
  1303. 30 and -30 degrees then gives us equal area patches on the sphere.  If we
  1304. wanted 5 patches per slice, we would divide the axis of the unit sphere (-1 to
  1305. 1) into 5 pieces, and so get -0.6,-0.2,0.2,0.6 as inputs for arcsin().  This
  1306. gives latitude lines on both hemispheres at 36.87 and 11.537 degrees.
  1307.  
  1308.     The problem with the whole technique is deciding how many longitude vs.
  1309. latitude lines to make.  Too many longitude lines and you get narrow patches,
  1310. too many latitude and you get squat patches.  About 2 * long = lat seems pretty
  1311. good, but this is just a good guess and not tested.
  1312.  
  1313.     Another problem is getting an even jitter to each patch.  Azimuth is
  1314. obvious, but you have to jitter in the domain for the altitude.  For example,
  1315. in a patch with an altitude from 30 to 90 degrees, you cannot simply select a
  1316. random degree value between 30 and 90, but rather must get a random value
  1317. between 0.5 and 1 (the original axis domain) and take the arcsin of this to
  1318. find the degree value.  (If you didn't do it this way, the samples would tend
  1319. to be clustered closer to the poles instead of evenly).
  1320.  
  1321.     Yet another problem with the above is that you get patches whose geometry
  1322. and topology can vary widely.  Patches at the pole are actually triangular, and
  1323. patches near the equator will be much more squat than those closer to the
  1324. poles.  If you would rather have patches with more of an equal extent than a
  1325. perfectly equal area, you could use a cube with a grid on each face cast upon
  1326. the sphere (radiosity uses half of this structure for hemi-cubes).  The areas
  1327. won't be equal, but they'll be pretty close and you can weight the samples
  1328. accordingly.  There are many other nice features to using this cast cube
  1329. configuration, like being able to use scan-line algorithms, being able to vary
  1330. grid size per face (or even use quadtrees), being able to access the structure
  1331. without having to perform trigonometry, etc.  I use it to tessellate spheres in
  1332. the SPD package so that I won't get those annoying clusterings at the poles of
  1333. the sphere, which can be particularly noticeable when using specular
  1334. highlighting.
  1335.  
  1336. --Eric Haines
  1337.  
  1338. -----------------------------------------------------------------------------
  1339.  
  1340. Depth of Field Problem
  1341.  
  1342. From: Marinko Laban via Frits Post    dutrun!frits@mcvax.cwi.nl
  1343.  
  1344.  
  1345. First an introduction. I'm a Computer Graphics student at the Technical
  1346. University of Delft, The Netherlands. My assignment was to do some research
  1347. about distributed ray tracing. I actually implemented a distributed ray tracer,
  1348. but during experiments a very strange problem came up. I implemented
  1349. depth-of-field exactly in the way R.L.  Cook described in his paper. I decided
  1350. to do some experiments with the shape of the f-stop of the simulated camera.
  1351. First I simulated a square-shaped f-stop. Now I now this isn't the real thing
  1352. in an actual photocamera, but I just tried. I divided the square f-stop in a
  1353. regular raster of N x N sub-squares, just in the way you would subdivide a
  1354. pixel in subpixels. All the midpoints of the subsquares were jittered in the
  1355. usual way. Then I rendered a picture. Now here comes the strange thing. My
  1356. depth-of-field effect was pretty accurate, but on some locations some jaggies
  1357. were very distinct. There were about 20 pixels in the picture that showed very
  1358. clear aliasing of texture and object contours. The funny thing was that the
  1359. rest of the picture seemed alright. When I rendered the same picture with a
  1360. circle-shaped f-stop, the jaggies suddenly disappeared! I browsed through my
  1361. code of the square f-stop, but I couldn't find any bugs. I also couldn't find a
  1362. reasonable explanation of the appearance of the jaggies. I figure it might have
  1363. something to do with the square being not point-symmetric, but that's as far as
  1364. I can get. I would like to know if someone has experience with the same
  1365. problem, and does somebody has a good explanation for it ...
  1366.  
  1367. Many thanks in advance,
  1368. Marinko Laban
  1369.  
  1370. -----------------------------------------------------------------------------
  1371.  
  1372. Query on Frequency Dependent Reflectance
  1373.  
  1374. From: hpfcla!sunrock!kodak!supra!reichert@Sun.COM (Mark Reichert x25948)
  1375.  
  1376. Hello.
  1377.  
  1378. I'm adding fresnel reflectance to my shader.  I'm in need of data for
  1379. reflectance as a function of frequency for non-polarized light at normal
  1380. incidence.  I would like to build a stockpile of this data for a wide variety
  1381. of materials.  I currently have some graphs of this data, but would much prefer
  1382. the actual sample points in place of the curve-fitted stuff I have now. (not to
  1383. mention the typing that you might save me).
  1384.  
  1385. If you have stuff such as this, and can share it with me, I would be most
  1386. appreciative. Also, if there is some Internet place where I might look, that
  1387. would be fine too.
  1388.  
  1389. Thanks,
  1390.  
  1391. Mark
  1392.  
  1393. -----------------------------------------------------------------------------
  1394.  
  1395. "Best of comp.graphics" ftp Site, by Raymond Brand
  1396.  
  1397. A collection of the interesting/useful [in my opinion] articles from
  1398. comp.graphics over the last year and a half is available for anonymous ftp.
  1399.  
  1400. It contains answers to most of the "most asked" questions from that period
  1401. as well as most of the sources posted to comp.graphics.
  1402.  
  1403. Now that you know what is there, you can find it in directory pub/graphics
  1404. at albanycs.albany.edu.
  1405.  
  1406. If you have anything to add to the collection or wish to update something
  1407. in it, or have have some ideas on how to organize it, please contact me at
  1408. one of the following.
  1409.  
  1410. [There's also a subdirectory called "ray-tracers" which has source code for
  1411. you-know-whats and other software--EAH]
  1412.  
  1413. --------
  1414. Raymond S. Brand                 rsbx@beowulf.uucp
  1415. 3A Pinehurst Ave.                rsb584@leah.albany.edu
  1416. Albany NY  12203                 FidoNet 1:7729/255 (518-489-8968)
  1417. (518)-482-8798                   BBS: (518)-489-8986
  1418.  
  1419. -----------------------------------------------------------------------------
  1420.  
  1421. Notes on Frequency Dependent Refraction
  1422.  
  1423. Newsgroups: comp.graphics
  1424.  
  1425. In article <3324@uoregon.uoregon.edu<, markv@uoregon.uoregon.edu (Mark VandeWettering) writes:
  1426. < }<    Finally, has anyone come up with a raytracer whose refraction model
  1427. < }< takes into account the varying indices of refraction of different light
  1428. < }< frequencies?  In other words, can I find a raytracer that, when looking
  1429. < }< through a prism obliquely at a light source, will show me a rainbow?
  1430. < }
  1431. < }     This could be tough. The red, green, and blue components of monitors
  1432. < }only simulate the full color spectrum. On a computer, yellow is a mixture
  1433. < }of red and green. In real life, yellow is yellow. You'd have to cast a
  1434. < }large number of rays and use a large amount of computer time to simulate
  1435. < }a full color spectrum. (Ranjit pointed this out in his article and went
  1436. < }into much greater detail).
  1437. < Actually, this problem seems the easiest.  We merely have to trace rays
  1438. < of differing frequency (perhaps randomly sampled) and use Fresnel's
  1439. < equation to determine refraction characteristics.  If you are trying to
  1440. < model phase effects like diffraction, you will probably have a much more
  1441. < difficult time.
  1442.  
  1443. This has already been done by a number of people.  One paper by T. L. Kunii
  1444. describes a renderer called "Gemstone Fire" or something.  It models refraction
  1445. as you suggest to get realistic looking gems.  Sorry, but I can't recall where
  1446. (or if) it has been published.  I have also read several (as yet) unpublished
  1447. papers which do the same thing in pretty much the same way.
  1448.  
  1449. David Jevans, U of Calgary Computer Science, Calgary AB  T2N 1N4  Canada
  1450. uucp: ...{ubc-cs,utai,alberta}!calgary!jevans
  1451.  
  1452. --------
  1453.  
  1454. >From: coifman@yale.UUCP (Ronald Coifman)
  1455.  
  1456. >>     This could be tough. ...
  1457. >
  1458. >This is the easy part...
  1459. >You fire say 16 rays per pixel anyway to do
  1460. >antialiasing, and assign each one a color (frequency).  When the ray
  1461. >is refracted through an object, take into account the index of
  1462. >refraction and apply Snell's law.  A student here did that
  1463. >and it worked fine.  He simulated rainbows and diffraction effects
  1464. >through prisms.
  1465. >
  1466. >    (Spencer Thomas (U. Utah, or is it U. Mich. now?) also implemented 
  1467. >the same sort of thing at about the same time.
  1468.  
  1469.   Yep, I got a Masters degree for doing that (I was the student Rob is refer-
  1470. ring to).  The problem in modelling dispersion is to integrate the primary
  1471. sample, over the visible frequencies of light.  Using the Monte Carlo integra-
  1472. tion techniques of Cook on the visible spectrum yields a nice, fairly simple
  1473. solution, albeit at the cost of supersampling at ~10-20 rays per pixel, where
  1474. dispersive sampling is required.
  1475.  
  1476.   Thomas used a different approach.  He adaptively subdivided the spectrum
  1477. based on the angle of spread of the dispersed ray, given the range of frequen-
  1478. cies it represents.  This can be more efficient, but can also have unlimited 
  1479. growth in the number of samples.  Credit Spencer Thomas; he was first.
  1480.  
  1481.   As at least one person has pointed out, perhaps the most interesting aspect
  1482. of this problem is that of representing the spectrum on an RGB monitor.  That's
  1483. an open problem; I'd be really interested in hearing about any solutions that
  1484. people have come up with.  (No, the obvious CIE to RGB conversion doesn't work
  1485. worth a damn.)
  1486.  
  1487.   My solution(s) can be found in "A Realistic Model of Refraction for Computer
  1488. Graphics", F. Kenton Musgrave, Modelling and Simulation on Microcomputers 1988
  1489. conference proceedings, Soc. for Computer Simulation, Feb. 1988, in my UC Santa
  1490. Cruz Masters thesis of the same title, and (hopefully) in an upcoming paper
  1491. "Prisms and Rainbows: a Dispersion Model for Computer Graphics" at the Graphics
  1492. Interface conference this summer.  (I can e-mail troff sources for these papers
  1493. to interested parties, but you'll not get the neat-o pictures.)
  1494.  
  1495.   For a look at an image of a physical model of the rainbow, built on the 
  1496. dispersion model, see the upcoming Jan. IEEE CG&A "About the Cover" article.
  1497.  
  1498.                     Ken Musgrave
  1499.  
  1500. Ken Musgrave            arpanet: musgrave@yale.edu
  1501. Yale U. Math Dept.        
  1502. Box 2155 Yale Station        Primary Operating Principle:
  1503. New Haven, CT 06520                Deus ex machina
  1504.  
  1505. -------------------------------------------------------------------------------
  1506.  
  1507. Sound Tracing
  1508.  
  1509. >From: ph@miro.Berkeley.EDU (Paul Heckbert)
  1510. Subject: Re: Sound tracing
  1511. [source: comp.graphics]
  1512.  
  1513. In article <239@raunvis.UUCP> kjartan@raunvis.UUCP
  1514. (Kjartan Pierre Emilsson Jardedlisfraedi) asks:
  1515. >  Has anyone had any experience with the application of ray-tracing techniques
  1516. > to simulate acoustics, i.e the formal equivalent of ray-tracing using sound
  1517. > instead of light? ...
  1518.  
  1519. Yes, John Walsh, Norm Dadoun, and others at the University of British Columbia
  1520. have used ray tracing-like techniques to simulate acoustics.  They called their
  1521. method of tracing polygonal cones through a scene "beam tracing" (even before
  1522. Pat Hanrahan and I independently coined the term for graphics applications).
  1523.  
  1524. Walsh et al simulated the reflection and diffraction of sound, and were able to
  1525. digitally process an audio recording to simulate room acoustics to aid in
  1526. concert hall design.  This is my (four year old) bibliography of their papers:
  1527.  
  1528.     %A Norm Dadoun
  1529.     %A David G. Kirkpatrick
  1530.     %A John P. Walsh
  1531.     %T Hierarchical Approaches to Hidden Surface Intersection Testing
  1532.     %J Proceedings of Graphics Interface '82
  1533.     %D May 1982
  1534.     %P 49-56
  1535.     %Z hierarchical convex hull or minimal bounding box to optimize intersection
  1536.     testing between beams and polyhedra, for graphics and acoustical analysis
  1537.     %K bounding volume, acoustics, intersection testing
  1538.  
  1539.     %A John P. Walsh
  1540.     %A Norm Dadoun
  1541.     %T The Design and Development of Godot:
  1542.     A System for Room Acoustics Modeling and Simulation
  1543.     %B 101st meeting of the Acoustical Society of America
  1544.     %C Ottawa
  1545.     %D May 1981
  1546.  
  1547.     %A John P. Walsh
  1548.     %A Norm Dadoun
  1549.     %T What Are We Waiting for?  The Development of Godot, II
  1550.     %B 103rd meeting of the Acoustical Society of America
  1551.     %C Chicago
  1552.     %D Apr. 1982
  1553.     %K beam tracing, acoustics
  1554.  
  1555.     %A John P. Walsh
  1556.     %T The Simulation of Directional Sound Sources
  1557.     in Rooms by Means of a Digital Computer
  1558.     %R M. Mus. Thesis
  1559.     %I U. of Western Ontario
  1560.     %C London, Canada
  1561.     %D Fall 1979
  1562.     %K acoustics
  1563.  
  1564.     %A John P. Walsh
  1565.     %T The Design of Godot:
  1566.     A System for Room Acoustics Modeling and Simulation, paper E15.3
  1567.     %B Proc. 10th International Congress on Acoustics
  1568.     %C Sydney
  1569.     %D July 1980
  1570.  
  1571.     %A John P. Walsh
  1572.     %A Marcel T. Rivard
  1573.     %T Signal Processing Aspects of Godot:
  1574.     A System for Computer-Aided Room Acoustics Modeling and Simulation
  1575.     %B 72nd Convention of the Audio Engineering Society
  1576.     %C Anaheim, CA
  1577.     %D Oct. 1982
  1578.  
  1579. Paul Heckbert, CS grad student
  1580. 508-7 Evans Hall, UC Berkeley        UUCP: ucbvax!miro.berkeley.edu!ph
  1581. Berkeley, CA 94720            ARPA: ph@miro.berkeley.edu
  1582.  
  1583. --------
  1584.  
  1585. >From: jevans@.ucalgary.ca (David Jevans)
  1586. Subject: Re: Sound tracing
  1587. [source: comp.graphics]
  1588.  
  1589. Three of my friends did a sound tracer for an undergraduate project last year.
  1590. The system used directional sound sources and microphones and a
  1591. ray-tracing-like algorithm to trace the sound.  Sound sources were digitized
  1592. and stored in files.  Emitters used these sound files.  At the end of the 4
  1593. month project they could digitize something, like a person speaking, run it
  1594. through the system, then pump the results through a speaker.  An acoustic
  1595. environment was built (just like you build a model for graphics).  You could
  1596. get effects like echoes and such.  Unfortunately this was never published.  I
  1597. am trying to convince them to work on it next semester...
  1598.  
  1599. David Jevans, U of Calgary Computer Science, Calgary AB  T2N 1N4  Canada
  1600. uucp: ...{ubc-cs,utai,alberta}!calgary!jevans
  1601.  
  1602. --------
  1603.  
  1604. >From: eugene@eos.UUCP (Eugene Miya)
  1605.  
  1606. May I also add that you research all the work on acoustic lasers done at places
  1607. like the Applied Physics Lab.
  1608.  
  1609. --------
  1610.  
  1611. >From: riley@batcomputer.tn.cornell.edu (Daniel S. Riley)
  1612. Organization: Cornell Theory Center, Cornell University, Ithaca NY
  1613.  
  1614. In article <572@epicb.UUCP> david@epicb.UUCP (David P. Cook) writes:
  1615. >>In article <7488@watcgl.waterloo.edu> ksbooth@watcgl.waterloo.edu (Kelly Booth) writes:
  1616. >>>[...]  It is highly unlikely that a couple of hackers thinking about
  1617. >>>the problem for a few minutes will generate startling break throughs
  1618. >>>(possible, but not likely).
  1619.  
  1620. Ok, I think most of us can agree that this was a reprehensible attempt at
  1621. arbitrary censorship of an interesting discussion.  Even if some of the
  1622. discussion is amateurish and naive.
  1623.  
  1624. >  The statement made above
  1625. [...]
  1626. >  Is appalling!  Sound processing is CENTURIES behind image processing.
  1627. >        If we were to apply even a few of our common algorithms
  1628. >        to the audio spectrum, it would revolutionize the
  1629. >        synthizer world.  These people are living in the stone
  1630. >        age (with the exception of a few such as Kuerdswell [sp]).
  1631.  
  1632. On the other hand, I think David is *seriously* underestimating the state of
  1633. the art in sound processing and generation.  Yes, Ray Kurzweil has done lots of
  1634. interesting work, but so have many other people.  Of the examples David gives,
  1635. most (xor'ing, contrast stretching, fuzzing, antialiasing and quantization) are
  1636. as elementary in sound processing as they are in image processing.  Sure, your
  1637. typical music store synthesizer/sampler doesn't offer these features (though
  1638. some come close--especially the E-mu's), but neither does your vcr.  And the
  1639. work Kurzweil music and Kurzweil applied intelligence have done on instrument
  1640. modelling and speech recognition go WAY beyond any of these elementary
  1641. techniques.
  1642.  
  1643. The one example I really don't know about is ray tracing.  Sound tracing is
  1644. certainly used in some aspects of reverb design, and perhaps other areas of
  1645. acoustics, but I don't know at what level diffraction is handled--and
  1646. diffraction is a big effect with sound propagation.  You also have to worry
  1647. about phases, interference, and lots of other fun effects that you can (to
  1648. first order) ignore in ray tracing.  References, anyone?  (Perhaps I should
  1649. resubscribe to comp.music, and try there...)
  1650.  
  1651. (off on a tangent: does any one know of work on ray tracers that will do things
  1652. like coherent light sources, interference, diffraction, etc?  In particular,
  1653. anyone have a ray tracer that will do laser speckling right?  I'm pretty naive
  1654. about the state of the art in image synthesis, so I have no idea if such beasts
  1655. exist.  It looks like a hard problem to me, but I'm just a physicist...)
  1656.  
  1657. >No, this is not a WELL RESEARCHED area as Kelly would have us believe.  The
  1658. >sound people are generally not attacking sound synthesis as we attack
  1659. >vision synthesis.  This is wonderful thinking, KEEP IT UP!
  1660.  
  1661. Much work in sound synthesis has been along lines similar to image synthesis.
  1662. Some of it is proprietary, and the rest I think just receives less attention,
  1663. since sound synthesis doesn't have quite the same level of perceived
  1664. usefulness, or the "sexiness", of image synthesis.  But it is there.
  1665. Regardless, I agree with David that this is an interesting discussion, and I
  1666. certainly don't mean to discourage any one from thinking or posting about it.
  1667.  
  1668. -Dan Riley (dsr@lns61.tn.cornell.edu, cornell!batcomputer!riley)
  1669. -Wilson Lab, Cornell U.
  1670.  
  1671. --------
  1672.  
  1673. >From: kjartan@raunvis.UUCP (Kjartan Pierre Emilsson Jardedlisfraedi)
  1674. Newsgroups: comp.graphics
  1675.  
  1676.   We would like to begin by thanking everybody for their good replies, which
  1677. will in no doubt come handy.  We intend to try to implement such a sound tracer
  1678. soon and we had already made some sort of model for it, but we were checking
  1679. whether there was some info lying around about such tracers.  It seems that our
  1680. idea wasn't far from actual implementations and that is reassuring.
  1681.   
  1682.   For the sake of Academical Curiosity and overall Renaissance-like
  1683. Enlightenment in the beginning of a new year we decided to submit our crude
  1684. model to the critics and attention of this newsgroup, hoping that it won't
  1685. interfere too much with the actual subject of the group, namely computer
  1686. graphics.
  1687.  
  1688.             The Model:
  1689.  
  1690.     We have some volume with an arbitrary geometry (usually simple such
  1691.     as a concert hall or something like that). Squares would work just
  1692.     fine as primitives.  Each primitive has definite reflection
  1693.     properties in addition to some absorption filter which possibly
  1694.     filters out some frequencies and attenuates the signal.
  1695.       In this volume we put a sound emitter which has the following
  1696.     form:
  1697.  
  1698.         The sound emitter generates a sound sample in the form
  1699.         of a time series with a definite mean power P.  The emitter
  1700.         emits the sound with a given power density given as some
  1701.         spherical distribution. For simplicity we tessellate this
  1702.         distribution and assign to each patch the corresponding mean
  1703.         power.
  1704.  
  1705.       At some other point we place the sound receptor which has the
  1706.     following form:
  1707.  
  1708.         We take a sphere and cut it in two equal halves, and then
  1709.         separate the two by some distance d.  We then tessellate the
  1710.         half-spheres (not including the cut).  We have then a crude
  1711.         model of ears.
  1712.  
  1713.       Now for the actual sound tracing we do the following:
  1714.  
  1715.         For each patch of the two half-spheres, we cast a ray
  1716.         radially from the center, and calculate an intersection
  1717.         point with the enclosing volume.  From that point we
  1718.         determine which patch of the emitter this corresponds to,
  1719.         giving us the emitted power.  We then pass the corresponding
  1720.         time series through the filter appropriate to the given
  1721.         primitives, calculate the reflected fraction, attenuate the
  1722.         signal by the square of the distance, and eventually
  1723.         determine the delay of the signal.  
  1724.  
  1725.         When all patches have been traced, we sum up all the time
  1726.         series and output the whole lot through some stereo device.
  1727.  
  1728.         A more sophisticated model would include secondary rays and
  1729.         sound 'shadowing' (The shadowing being a little tricky as it is
  1730.         frequency dependent)
  1731.  
  1732.  
  1733.     pros & cons ?
  1734.                 Happy New Year !!
  1735.  
  1736.                     -Kjartan & Dagur
  1737.  
  1738.  
  1739. Kjartan Pierre Emilsson
  1740. Science Institute - University of Iceland
  1741. Dunhaga 3
  1742. 107 Reykjavik
  1743. Iceland                    Internet: kjartan@raunvis.hi.is
  1744.  
  1745. --------
  1746.  
  1747. >From: brent@itm.UUCP (Brent)
  1748. Organization: In Touch Ministries, Atlanta, GA
  1749.  
  1750.     Ok, here's some starting points: check out the work of M. Schroeder at the
  1751. Gottingen. (Barbarian keyboard has no umlauts!)  Also see the recent design work
  1752. on the Orange County Civic Auditorium and the concert hall in New Zealand.
  1753. These should get you going in the right direction.  Dr. Schroeder laid the
  1754. theoretical work and others ran with it.  As far as sound ray tracing and
  1755. computer acoustics being centuries behind, I doubt it.  Dr. S. has done things
  1756. like record music in stereo in concert halls, digitized it, set up playback
  1757. equipment in an anechoic chamber (bldg 15 at Murry Hill), measured the path
  1758. from the right speaker to the left ear, and from the left speaker to the right
  1759. ear, digitized the music and did FFTs to take out the "crossover paths" he
  1760. measured.  Then the music played back sounded just like it did in the concert
  1761. hall.  All this was done over a decade ago.
  1762.  
  1763.     Also on acoustic ray tracing: sound is much "nastier" to figure than
  1764. pencil-rays of light.  One must also consider the phase of the sound, and the
  1765. specific acoustic impedance of the reflecting surfaces.  Thus each reflection
  1766. introduces a phase shift as well as direction and magnitude changes.  I haven't
  1767. seen too many optical ray-tracers worrying about interference and phase shift
  1768. due to reflecting surfaces.  Plus you have to enter vast world of
  1769. psychoacoustics, or how the ear hears sound.  In designing auditoria one must
  1770. consider "binaural dissimilarity" (Orange County) and the much-debated
  1771. "auditory backward inhibition" (see the Lincoln Center re-designs).
  1772. Resonance?? how many optical chambers resonate? (outside lasers?)  All in all,
  1773. modern acoustic simulations bear much more resemblance to Quantum Mechanic
  1774. "particle in the concert hall" type calculations than to simple ray-traced
  1775. optics.
  1776.  
  1777.     Postscript: eye-to-source optical ray tracing is a restatement of
  1778. Rayleigh's "reciprocity principle of sound" of about a century ago.
  1779. Acoustitions have been using it for at least that long.
  1780.  
  1781.         happy listening,
  1782.  
  1783.                 brent laminack (gatech!itm!brent)
  1784.  
  1785. --------
  1786.  
  1787. Reply-To: trantow@csd4.milw.wisc.edu (Jerry J Trantow)
  1788. Subject: Geometric Acoustics (Sound Tracing)
  1789. Summary: Not so easy, but here are some papers
  1790. Organization: University of Wisconsin-Milwaukee
  1791.  
  1792. Some of the articles I have found include
  1793.  
  1794. Criteria for Quantitative Rating and Optimum Design on Concert Halls
  1795.  
  1796. Hulbert, G.M.  Baxa, D.E. Seireg, A.
  1797. University of Wisconsin - Madison
  1798. J Acoust Soc Am v 71 n 3 Mar 83 p 619-629
  1799. ISSN 0001-4966, Item Number: 061739
  1800.  
  1801. Design of room acoustics and a MCR reverberation system for Bjergsted
  1802. Concert hall in Stavanger
  1803.  
  1804. Strom, S.  Krokstad, A.  Sorsdal, S.  Stensby, S.
  1805. Appl Acoust v19 n6 1986 p 465-475
  1806. Norwegian Inst of Technology, Trondheim, Norw
  1807. ISSN 0003-682X, Item Number: 000913
  1808.  
  1809.  
  1810. I am also looking for an English translation of:
  1811.  
  1812. Ein Strahlverfolgungs-Verafahren Zur Berechnung von Schallfelern in Raemem
  1813. [ Ray-Tracing Program for the calculation of sound fields of rooms ]
  1814.  
  1815. Voralaender, M.
  1816. Acoustica v65 n3 Feb 88 p 138-148
  1817. ISSN 0001-7884, Item Number: 063350
  1818.  
  1819. If anyone is interested in doing a translation I can send the German copy that
  1820. I have.  It doesn't do an ignorant fool like myself any good and I have a hard
  1821. time convincing my wife or friends who know Deutch to do the translation.
  1822.  
  1823. A good literature search can discover plenty of articles, quite a few of which
  1824. are about architectural design of music halls.  With a large concert hall, the
  1825. calculations are easier because of the dimensions.  (the wavelength is small
  1826. compared to the dimensions of the hall)
  1827.  
  1828. The cases I am interested in are complicated by the fact that I want to work
  1829. with relatively small rooms, large sources, and to top it off low (60hz)
  1830. frequencies.  I vaguely remember seeing a blurb somewhere about a program done
  1831. by BOSE ( the speaker company) that calculated sound fields generated by
  1832. speakers in a room.  I would appreciate any information on such a beast.
  1833.  
  1834. The simple source for geometric acoustics is described in Beranek's Acoustic in
  1835. the chapter on Radiation of Sound.  To better appreciate the complexity from
  1836. diffraction, try the chapter on The Radiation and Scattering of Sound in Philip
  1837. Morse's Vibration and Sound ISBN 0-88318-287-4.
  1838.  
  1839. I am curious as to the commercial software that is available in this area.
  1840. Does anyone have any experience they could comment on???
  1841.  
  1842. ------
  1843.  
  1844. >From: markv@uoregon.uoregon.edu (Mark VandeWettering)
  1845. Subject: More Sound Tracing
  1846. Organization: University of Oregon, Computer Science, Eugene OR
  1847.  
  1848. I would like to present some preliminary ideas about sound tracing, and
  1849. critique (hopefully profitably) the simple model presented by Kjartan Pierre
  1850. Emilsson Jardedlisfraedi.  (Whew! and I thought my name was bad, I will
  1851. abbreviate it to KPEJ)
  1852.  
  1853.  
  1854. CAVEAT READER: I have no expertise in acoustics or sound engineering.  Part of
  1855. the reason I am writing this is to test some basic assumptions that I have made
  1856. during the course of thinking about sound tracing.  I have done little/no
  1857. research, and these ideas are my own.
  1858.  
  1859. KJEP had a model related below:
  1860.  
  1861. >    We have some volume with an arbitrary geometry (usually simple such
  1862. >    as a concert hall or something like that). Squares would work just
  1863. >    fine as primitives.  Each primitive has definite reflection
  1864. >    properties in addition to some absorption filter which possibly
  1865. >    filters out some frequencies and attenuates the signal.
  1866.  
  1867.     One interesting form of sound reflector might be the totally
  1868.     diffuse reflector (Lambertian reflection).  It seems that if
  1869.     this is the assumption, then the appropriate algorithm to use
  1870.     might be radiosity, as opposed to raytracing.  Several problems
  1871.     immediately arise:
  1872.  
  1873.         1.    how to handle diffraction and interference?
  1874.         2.    how to handle "relativistic effects" (caused by
  1875.             the relatively slow speed of sound)
  1876.     
  1877.     The common solution to 1 in computer graphics is to ignore it.
  1878.     Is this satisfactory in the audio case?  Under what
  1879.     circumstances or applications is 1 okay?  
  1880.  
  1881.     Point 2 is not often considered in computer graphics, but in
  1882.     computerized sound generation, it seems critical to accurate
  1883.     formation of echo and reverberation effects.  To properly handle
  1884.     time delay in radiosity would seem to require a more difficult
  1885.     treatment, because the influx of "energy" at any given time
  1886.     from a given patch could depend on the outgoing energy at a
  1887.     number of previous times.  This seems pretty difficult, any
  1888.     immediate ideas?
  1889.  
  1890. >      Now for the actual sound tracing we do the following:
  1891. >
  1892. >        For each patch of the two half-spheres, we cast a ray
  1893. >        radially from the center, and calculate an intersection
  1894. >        point with the enclosing volume.  From that point we
  1895. >        determine which patch of the emitter this corresponds to,
  1896. >        giving us the emitted power.  We then pass the corresponding
  1897. >        time series through the filter appropriate to the given
  1898. >        primitives, calculate the reflected fraction, attenuate the
  1899. >        signal by the square of the distance, and eventually
  1900. >        determine the delay of the signal.  
  1901. >
  1902. >        When all patches have been traced, we sum up all the time
  1903. >        series and output the whole lot through some stereo device.
  1904.  
  1905.     One open question: how much directional information is captured
  1906.     by your ears?  Since you can discern forward/backward sounds as
  1907.     well as left/right, it would seem that ordinary stereo
  1908.     headphones are incapable of reproducing sounds as complex as one
  1909.     would like.  Can the ears be fooled in clever ways?
  1910.  
  1911.     The only thing I think this model lacks is secondary "rays" or
  1912.     echo/reverb effects.  Depending on how important they are,
  1913.     radiosity algorithms may be more appropriate.
  1914.  
  1915.     Feel free to comment on any of this, it is an ongoing "thought
  1916.     experiment", and has made a couple of luncheon conversations
  1917.     quite interesting.
  1918.  
  1919. Mark VandeWettering
  1920.  
  1921. --------
  1922.  
  1923. >From: ksbooth@watcgl.waterloo.edu (Kelly Booth)
  1924. Organization: U. of Waterloo, Ontario
  1925.  
  1926. In article <3458@uoregon.uoregon.edu> markv@drizzle.UUCP (Mark VandeWettering) writes:
  1927. >
  1928. >        1.    how to handle diffraction and interference?
  1929. >        2.    how to handle "relativistic effects" (caused by
  1930. >            the relatively slow speed of sound)
  1931. >    
  1932. >    The common solution to 1 in computer graphics is to ignore it.
  1933.  
  1934. Hans P. Moravec,
  1935. "3D Graphics and Wave Theory"
  1936. Computer Graphics 15:3 (August, 1981) pp. 289-296.
  1937. (SIGGRAPH '81 Proceedings)
  1938.  
  1939. [Trivia Question: Why does the index for the proceedings list this as starting
  1940. on page 269?]
  1941.  
  1942. Also, something akin to 2 has been tackled in some ray tracers where dispersion
  1943. is taken into account (this is caused by the refractive index depending on the
  1944. frequency, which is basically a differential speed of light).
  1945.  
  1946. -----------------------------------------------------------------------------
  1947.  
  1948. Laser Speckle
  1949.  
  1950. >From: jevans@cpsc.ucalgary.ca (David Jevans)
  1951.  
  1952. In article <11390016@hpldola.HP.COM>, paul@hpldola.HP.COM (Paul Bame) writes:
  1953. > A raytracer which did laser speckling right might also be able
  1954. > to display holograms.  
  1955.  
  1956. A grad student at the U of Calgary a couple of years ago did something like
  1957. this.  He was using holographic techniques for character recognition, and could
  1958. generate synthetic holograms.  Also, what about Pixar?  See IEEE CG&A 3 issues
  1959. ago.
  1960.  
  1961. David Jevans, U of Calgary Computer Science, Calgary AB  T2N 1N4  Canada
  1962. uucp: ...{ubc-cs,utai,alberta}!calgary!jevans
  1963.  
  1964. --------
  1965.  
  1966. >From: dave@onfcanim.UUCP (Dave Martindale)
  1967. Organization: National Film Board / Office national du film, Montreal
  1968.  
  1969. Laser speckle is a particularly special case of interference, because it
  1970. happens in your eye, not on the surface that the laser is hitting.
  1971.  
  1972. A ray-tracing system that dealt with interference of light from different
  1973. sources would show the interference fringes that occur when a laser light
  1974. source is split into two beams and recombined, and the interference of acoustic
  1975. waves.  But to simulate laser speckle, you'd have to trace the light path all
  1976. the way back into the viewer's eye and calculate interference effects on the
  1977. retina itself.
  1978.  
  1979. If you don't believe me, try this: create a normal two-beam interference fringe
  1980. pattern.  As you move your eye closer, the fringes remain the same physical
  1981. distance apart, becoming wider apart in angular position as viewed by your eye.
  1982. The bars will remain in the same place as you move your head from side to side.
  1983.  
  1984. Now illuminate a target with a single clean beam of laser light.  You will see
  1985. a fine speckle pattern.  As you move your eye closer, the speckle pattern does
  1986. not seem to get any bigger - the spots remain the same angular size as seen by
  1987. your eye.  As you move your head from side to side, the speckle pattern moves.
  1988.  
  1989. As the laser light reflects from a matte surface, path length differences
  1990. scramble the phase of light traveling by slightly different paths.  When a
  1991. certain amount of this light is focused on a single photoreceptor in your eye
  1992. (or a camera), the light combines constructively or destructively, giving the
  1993. speckle pattern.  But the size of the "grains" in the pattern is basically the
  1994. same as the spacing of the photoreceptors in your eye - basically each cone in
  1995. your eye is receiving a random signal independent of each other cone.
  1996.  
  1997. The effect depends on the scattering surface being rougher than 1/4 wavelength
  1998. of light, and the scale of the roughness being smaller than the resolution
  1999. limit of the eye as seen from the viewing position.  This is true for almost
  2000. anything except a highly-polished surface, so most objects will produce
  2001. speckle.
  2002.  
  2003. Since the pattern is due to random variation in the diffusing surface, there is
  2004. little point in calculating randomness there, tracing rays back to the eye, and
  2005. seeing how they interfere - just add randomness directly to the final image
  2006. (although this won't correctly model how the speckle "moves" as you move your
  2007. head).
  2008.  
  2009. However, to model speckle accurately, the pixel spacing in the image has to be
  2010. no larger than the resolution limit of the eye, about half an arc minute.  For
  2011. a CRT or photograph viewed from 15 inches away, that's 450 pixels/inch, far
  2012. higher than most graphics displays are capable of.  So, unless you have that
  2013. sort of system resolution, you can't show speckle at the correct size.
  2014.  
  2015. -----------------------------------------------------------------------------
  2016. END OF RTNEWS
  2017.